mmt - ERD
Het entity-relationship-model of entity-relationship diagram (ERD) is een model in de vorm van een diagram waarmee een conceptueel datamodel inzichtelijk wordt gemaakt. Het is een visuele, gemakkelijk te begrijpen, weergave van de entiteiten, relaties en regels die van toepassing in een logisch ontwerp. Deze diagrammen worden gemaakt bij het ontwerpen van een informatiesysteem om een overzicht te krijgen van de informatie, de gegevens die in het systeem aanwezig is, en de verbanden tussen de gegevens.
Meestal wordt het gebruikt om een visuele weergave te maken van een relationeel model. Het gemaakte diagram kan vervolgens omgezet worden in een databasemodel. Hier in dit geval gaan we het ERD omzetten naar JSON. Je vindt een handige JSON editor op JSON Editor Online.
ERD
Toelichting
- De rol gaan we niet normaliseren. We maken geen aparte tabel voor de rol. Er zijn vier rollen:
- DIRECTOR
- SUPERVISOR
- USER
- GUEST
- In de Log entiteit slaan we de gegevens van de bezienswaardigheid letterlijk op. We kiezen ervoor om geen foreign keys te gebruiken omdat we willen dat de log tabel los van de andere entiteiten gelezen kan worden.
JSON
Opmerking: Nu worden die gegevens in een json tekstbestand opgeslagen vooraleer ze in local storage worden geladen. Het is de bedoeling die data met een API van de server halen als de gebruiker voor de eerste keer de app openent. Dan worden de gegevens in een json bestand lokaal bewaard.
Entity curiosity
Entity user
{ "api": "User", "code": "U", "title": "Gebruiker", "description": "Gebruikergegevens", "version": "0.0", "updated": "2019-01-12 10:33:42", "list": [ { "api": "Identity", "code": "ID", "title": "Identiteit", "description": "Persoonlijke gegevens", "version": "0.0", "updated": "2016-11-16 13:33:42", "role": "USER", "userName": "jing", "password": "123456", "firstName": "Joseph", "lastName": "Inghelbrecht", "phoneWork": "0456 55 55 55", "phoneHome": "0456 55 55 55", "mobile": "0456 55 55 55", "email": "jef.inghelbrecht@me.be", "street": "Daarwoonikstraat 38", "postalCode": "2000", "city": "Antwerpen", "function": "leerling" }, { "api": "Identity", "code": "ID", "title": "Identiteit", "description": "Persoonlijke gegevens", "version": "0.0", "updated": "2016-11-16 13:33:42", "role": "DIRECTOR", "userName": "guy", "password": "123456", "firstName": "Guy", "lastName": "Linten", "phoneWork": "0456 55 55 55", "phoneHome": "0456 55 55 55", "mobile": "0456 55 55 55", "email": "guy.linten@telenet.be", "street": "Ergensstraat 2", "postalCode": "1000", "city": "Brussel", "function": "directeur" }, { "api": "Identity", "code": "ID", "title": "Identiteit", "description": "Persoonlijke gegevens", "version": "0.0", "updated": "2016-11-16 13:33:42", "role": "SUPERUSER", "userName": "superjing", "password": "123456", "firstName": "Joseph", "lastName": "Inghelbrecht", "phoneWork": "0456 55 55 55", "phoneHome": "0456 55 55 55", "mobile": "0456 55 55 55", "email": "jef.inghelbrecht@me.be", "street": "Daarwoonikstraat 38", "postalCode": "2000", "city": "Antwerpen", "function": "docent" }, { "api": "Identity", "code": "ID", "title": "Identiteit", "description": "Persoonlijke gegevens", "version": "0.0", "updated": "2016-11-16 13:33:42", "role": "DIRECTOR", "userName": "dirjing", "password": "123456", "firstName": "Joseph", "lastName": "Inghelbrecht", "phoneWork": "0456 55 55 55", "phoneHome": "0456 55 55 55", "mobile": "0456 55 55 55", "email": "jef.inghelbrecht@me.be", "street": "Daarwoonikstraat 38", "postalCode": "2000", "city": "Antwerpen", "function": "Secretariaat" } ] }